home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO040.dsk
/
UTILS
/
TOOLKIT.bas
< prev
Wrap
BASIC Source File
|
2012-02-16
|
6KB
|
142 lines
5 REM THE MAGIC CITY MICRO
6 REM & SUPPORT UTILITIES
7 REM COPYRIGHT 1984 BY
8 REM DAVID M. ALDEN
100 D$ = CHR$(4):CR$ = CHR$(13):SP$ = CHR$(32):BS$ = CHR$(8)
110 PRINT D$"OPEN STATS"
120 PRINT D$"READ STATS"
130 INPUT NS,NC,CT
135 PRINT D$"CLOSE"
140 DIM FL$(15): DIM FI$(15): DIM FL(15)
150 PRINT D$
400 FL$(1) = "1. First name: ":FL(1) = 7
410 FL$(2) = "2. Last name: ":FL(2) = 10
420 FL$(3) = "3. P.O. Box #: ":FL(3) = 3
430 FL$(4) = "4. Phone #: ":FL(4) = 12
440 FL$(5) = "5. Password : ":FL(5) = 5
450 FL$(6) = "6. Security 1: ":FL(6) = 1
460 FL$(7) = "7. Security 2: ":FL(7) = 1
470 FL$(8) = "8. Security 3: ":FL(8) = 1
480 FL$(9) = "9. Security 4: ":FL(9) = 1
490 FL$(10) = "10. Security 5: ":FL(10) = 1
500 FL$(11) = "11. Last Call : ":FL(11) = 5
510 FL$(12) = "12. # Calls : ":FL(12) = 3
570 GOTO 1010
580 HOME : VTAB 3: HTAB 12: PRINT "EDIT A RECORD": VTAB 10: PRINT "(Q)uit; Subscriber # 1 - ";NS;" -> ";:IL(1) = 3: GOSUB 910
590 IF I$ = "Q" OR I$ = "q" THEN 1010
600 RC = INT( VAL(I$)): IF RC <1 OR RC >NS THEN 580
605 HOME
610 PRINT D$"OPEN USERS,L62"
620 PRINT D$"READ USERS,R";RC
625 FOR X = 1 TO 12: INPUT FI$(X): NEXT X
630 FOR X = 1 TO 12
640 PRINT FL$(X);FI$(X)
650 NEXT X
660 VTAB 19: HTAB 1
665 PRINT D$
670 PRINT "(Q)uit; CHANGE FIELD #";
675 INVERSE : PRINT SP$;SP$;: NORMAL : PRINT BS$;BS$;:IL(1) = 2: GOSUB 910
680 IF I$ = "Q" OR I$ = "q" THEN 810
690 I = INT( VAL(I$)): IF I >12 OR I <1 THEN 670
700 VTAB 21: HTAB 2
710 PRINT "Enter new info...": PRINT
720 PRINT FL$(I);: CALL -868
730 INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
740 NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
750 IL(1) = FL(I): GOSUB 910
760 FI$(I) = I$: VTAB I: HTAB 17: CALL -868: PRINT FI$(I): GOTO 660
800 REM ** SAVE RECORD **
810 PRINT CR$: PRINT D$"WRITE USERS,R"RC
820 FOR X = 1 TO 12: PRINT FI$(X): NEXT X
850 GOTO 1010
900 REM ** USER ENTRY **
910 I$ = "":C$ = ""
930 FOR X = 1 TO IL(1)
940 GET C$
950 IF C$ = CR$ THEN 990
960 PRINT C$;
970 I$ = I$ +C$
980 NEXT X
990 PRINT : RETURN
1000 REM ** MAIN MENU **
1010 HOME : PRINT D$"CLOSE"
1015 HTAB 5: VTAB 7: PRINT "MAGIC CITY UTILITIES"
1020 VTAB 12: PRINT "1. EDIT SUBSCRIBER RECORD": PRINT "2. LIST SUBSCRIBERS TO PRINTER": PRINT "3. ADD A NEW SUBSCRIBER": PRINT "4. EXIT UTILITY"
1025 HTAB 6: VTAB 22: PRINT NS" Subscribers"
1030 HTAB 4: VTAB 17: PRINT "Select 1 - 4 -> ";:IL(1) = 1: GOSUB 910
1040 I = INT( VAL(I$)): ON I GOTO 580,1210,1510,1150
1050 GOTO 1030
1150 PRINT D$"CLOSE"
1160 HOME : END
1200 REM ** PRINT REPORTS **
1210 HOME : VTAB 3: HTAB 14: PRINT "PRINT REPORT"
1220 VTAB 5: HTAB 7: PRINT NS" Subscribers in database."
1230 VTAB 16: PRINT "Begin list with subscriber # 1"BS$;:IL(1) = 3: GOSUB 910
1240 IF I$ = "" THEN RC(1) = 1: GOTO 1260
1250 RC(1) = INT( VAL(I$)): IF NOT (RC(1) >0 AND RC(1) = <NS) THEN 1230
1252 IF NS >0 AND NS <10 THEN C = 1
1254 IF NS >9 AND NS <100 THEN C = 2
1256 IF NS >99 THEN C = 3
1260 VTAB 18: PRINT "End with subscriber # "NS;: FOR X = 1 TO C: PRINT BS$;: NEXT X
1265 IL(1) = 3: GOSUB 910
1270 IF I$ = "" THEN RC(2) = NS: GOTO 1300
1280 RC(2) = INT( VAL(I$)): IF NOT (RC(2) >0 AND RC(2) = <NS) THEN 1260
1300 IF RC(2) <RC(1) THEN PRINT "Bad range...": GOTO 1210
1303 PRINT D$"OPEN USERS,L62"
1305 PRINT D$"PR#1"
1306 L = 1: FOR X = 1 TO 6: PRINT : NEXT X
1307 PRINT "REC -SUBSCRIBER NAME- BOX PWORD SECUR 1-5 LAST/#CALLS": PRINT : PRINT
1310 PRINT D$"READ USERS,R"RC(1)
1320 FOR X = 1 TO 12: INPUT FI$(X): NEXT X
1325 PRINT RC(1);: POKE 36,5: PRINT FI$(1);: POKE 36,13: PRINT FI$(2);: POKE 36,24: PRINT FI$(3);: POKE 36,29: PRINT FI$(5);
1330 POKE 36,36: PRINT FI$(6)" "FI$(7)" "FI$(8)" "FI$(9)" "FI$(10);
1335 POKE 36,46: PRINT FI$(11)" "FI$(12)
1350 PRINT D$:L = L +1
1360 RC(1) = RC(1) +1: IF RC(1) >RC(2) THEN 1400
1365 IF L >50 THEN PRINT : PRINT : PRINT : PRINT : PRINT : GOTO 1306
1370 GOTO 1310
1400 PRINT CR$: PRINT D$"PR#0"
1410 GOTO 1010
1500 REM ** ADD NEW SUBSCRIBER
1510 X = 1: HOME : ONERR GOTO 1650
1530 PRINT D$"OPEN USERS,L62"
1540 PRINT D$"READ USERS,R"X
1550 INPUT N1$
1560 IF N1$ = "EMPTY" THEN GOTO 1600
1570 X = X +1: GOTO 1540
1600 RC = X
1610 PRINT D$"CLOSE": GOTO 1700
1650 ONERR GOTO 3405
1660 NS = NS +1:RC = NS
1670 PRINT D$"CLOSE": GOTO 1700
1700 HOME : VTAB 3: PRINT "ENTER DATA FOR SUBSCRIBER #";RC
1710 I = 1: VTAB 8: PRINT FL$(1): PRINT FL$(2): PRINT FL$(4): PRINT FL$(5)
1720 VTAB 15: PRINT "Enter subscriber data:"
1730 PRINT FL$(I);: CALL -868: INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
1740 NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
1750 IL(1) = FL(I): GOSUB 910
1760 FI$(I) = I$:Z = I +7: HTAB 17: IF Z >9 THEN Z = Z -1
1761 VTAB Z: CALL -868: PRINT FI$(I): IF I = 5 THEN 1780
1765 I = I +1: IF I = 3 THEN I = 4
1770 GOTO 1720
1780 VTAB 19: PRINT "All correct? (Y/N) -> ";:IL(1) = 1: GOSUB 910
1790 IF I$ = "N" OR I$ = "n" THEN 1810
1800 GOTO 1880
1810 VTAB 22: PRINT "Change field # ";:IL(1) = 1: GOSUB 910
1820 I = INT( VAL(I$)): IF NOT (I >0 AND I <6) THEN 1810
1830 IF I = 3 THEN 1810
1840 VTAB 16: PRINT FL$(I);: CALL -868: INVERSE : FOR X = 1 TO FL(I): PRINT SP$;: NEXT X
1850 NORMAL : FOR X = 1 TO FL(I): PRINT BS$;: NEXT X
1860 IL(1) = FL(I): GOSUB 910
1870 FI$(I) = I$:Z = I +7: HTAB 17: IF Z >9 THEN Z = Z -1
1875 VTAB Z: CALL -868: PRINT FI$(I): GOTO 1780
1880 FI$(3) = STR$(RC +113)
1885 FI$(6) = "1"
1890 FOR X = 7 TO 12:FI$(X) = "0": NEXT X
1895 PRINT D$"OPEN USERS,L62"
1900 PRINT D$"WRITE USERS,R"RC
1910 FOR X = 1 TO 12: PRINT FI$(X): NEXT X
1915 PRINT D$"OPEN STATS"
1920 PRINT D$"WRITE STATS"
1930 PRINT NS: PRINT NC: PRINT CT
1940 PRINT D$"CLOSE": GOTO 1010